package ca.polymtl.liom.gui;

import java.io.IOException;

import javax.swing.AbstractListModel;
import ca.polymtl.liom.stim.*;

public class LIOMStimulationListModel extends AbstractListModel {
	private LIOMStimulationList p_stim_list;
	
	LIOMStimulationListModel(){
		p_stim_list = new LIOMStimulationList();
		try{
			p_stim_list.getFromPreferences();
		}
		catch( IOException e ){
			e.printStackTrace();
		}
	}
	@Override
	public Object getElementAt(int index) {
		return p_stim_list.getStimList().get(index);
	}

	@Override
	public int getSize() {
		return p_stim_list.getStimList().size();
	}
	
	public void addElement(LIOMStimulation new_stim){
		if (p_stim_list.addNewStimulation(new_stim)){
			int add_index = p_stim_list.getStimList().indexOf(new_stim);
			fireIntervalAdded(this,add_index,add_index);
		}
	}
	public void removeElement(int remove_index){
		if( remove_index < p_stim_list.getStimList().size()){
			p_stim_list.getStimList().remove(remove_index);
			fireIntervalRemoved(this,remove_index,remove_index);
		}
	}
}
